/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.foxinline.manager.criar;

import br.com.foxinline.modelo.Mensagem;
import br.com.foxinline.modelo.Projeto;
import br.com.foxinline.servico.MensagemServico;
import br.com.foxinline.servico.UsuarioServico;
import java.io.IOException;
import java.io.Serializable;
import java.util.List;
import javax.annotation.PostConstruct;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;

/**
 *
 * @author roniere
 */
@ManagedBean
@ViewScoped
public class ManagerInbox implements Serializable {

    @EJB
    private MensagemServico messageService;
    @EJB
    private UsuarioServico usuarioServico;
    private List<Mensagem> messages;
    private boolean enviados;

    @PostConstruct
    public void init() {
        messages = messageService.messagesRecebidas();
    }

    public void modeEnviados() {
        enviados = true;
        messages = messageService.messagesEnviadas();
    }

    public void modeRecebidos() {
        enviados = false;
        messages = messageService.messagesRecebidas();
    }

    public int count() {
        return messageService.countMessagesUnread();
    }

    public void readMessage(Mensagem m) {
        if (!enviados) {
            m.setWasRead(true);
            messageService.atualizar(m);
        }
        redirect("viewMessage.xhtml?messageId=" + m.getId());
    }

    public void openProjeto(Projeto s) {

        redirect("projeto.xhtml?vProjeto=" + s.getId());
    }

    public void redirect(String string) {
        try {
            FacesContext context = FacesContext.getCurrentInstance();
            context.getExternalContext().redirect(string);
        } catch (IOException ex) {
        }
    }

    public boolean isEnviados() {
        return enviados;
    }

    public void setEnviados(boolean enviados) {
        this.enviados = enviados;
    }

    public List<Mensagem> getMessages() {
        return messages;
    }

    public void setMessages(List<Mensagem> messages) {
        this.messages = messages;
    }
}
